1. Field of the Invention
The present invention relates to a print job management system that receives a plurality of print jobs from, for example, computers, and manages the plurality of print jobs to be adequately printed with printers.
2. Description of the Related Art
With spread of LANs (Local Area Networks), the system, in which a plurality of computers connecting with a network (hereinafter referred to as ‘clients’) share one or multiple printers also connecting with the network, becomes popular. Multiple print jobs are transmitted from the clients to each printer. Each printer is provided with an internal or external spool buffer for storing the transmitted print jobs. The print jobs are temporarily registered in the spool buffer and successively transferred to the printer to be printed.
The print job is printed through diverse statuses. The spool buffer manages print jobs based on these statuses. The statuses are defined by International Standard ISO/IEC10175-1. FIG. 1 shows the outline of the statuses defined by International Standard ISO/IEC10175-1. Only the main statuses are illustrated here.
The status ‘receiving’ means that the buffer is now receiving a print job transmitted from the client. The status of the print job that has been received by the buffer is shifted to ‘pending’ (see the arrow tr1). The status ‘pending’ means that the received print job is added to a waiting queue of printing operation. The print jobs added to the waiting queue are successively executed according to a predetermined order of priority.
The status of the print job, which should be processed currently, is shifted from ‘pending’to ‘interPreting’ (see the arrow tr2). The print jobs are described in diverse protocols and languages, for example LPR and PostScript. It is accordingly required to interpret the contents of data in each print job and convert the data of the print job into data intrinsic to the printer used for printing. The status ‘interPreting’ means that such data conversion is being carried out.
After completion of the interpreting, the status of the print job is shifted to ‘printWaiting’ (see the arrow tr3). The status ‘printWaiting’ means that the print job is waiting until the printer gets ready for printing.
When the printer is read for printing, the print job is transferred to the printer and is printed. This further shifts the status of the print job to ‘printing’ (see the arrow tr4). On completion of the printing operation, the status is changed to ‘completed’ (see the arrow tr5). In general, the print job is eliminated and the job management is concluded at this moment.
An instruction to retain for a preset time period after conclusion of printing may be attached to the print job. In such cases, the status of the print job is further shifted from ‘completed’ to ‘retained’ (see the arrow tr7). The status ‘retained’ means that the print job is not eliminated but is kept until either of conditions, that is, input of a user's reprinting instruction and elapse of a predetermined time period, is fulfilled. In response to input of a user's reprinting instruction via the client or an interface of the printer, the status of the print job is shifted from ‘retained’ to ‘pending’ (see the arrow tr9). The process of job management newly creates a print job identical with the print job in the ‘retained’ status and keeps the newly created print job in the ‘pending’ status. Namely the job management assigns different pieces of identification information, for example, job number or indexes to the existing print job in the ‘retained’ status and the newly created print job in the ‘pending’ status.
There is often an additional function of holding execution of the print job, in addition to the series of processing flow discussed above. This function results in a ‘held’ status. The shift to the ‘held’ status is implemented in response to input of a user's instruction via the client or the interface of the printer. The shift to the ‘held’ status is allowed from any of the ‘pending’, ‘printWaiting’, ‘interPreting’, ‘printing’, and ‘completed’ statuses (see the arrows tr6). The shift to the ‘held’ status is otherwise implemented by attaching data, which represents an instruction of a shift to the ‘held’ status, to the print job. The print job in the ‘held’ status is kept in the current state until input of a user's instruction. In response to a user's release instruction, the status of the print job is again shifted to ‘pending’ (see the arrow tr8). The print job in the ‘held’ status may alternatively be eliminated in response to a user's discarding instruction.
The statuses ‘held’ and ‘retained’ are similar to each other in some sense, since the job is kept in either of these statuses. There is, however, a distinct difference between these two statuses. The shift to the ‘retained’ status is allowed only after execution of the print job, while there is no such a restriction with regard to the shift to the ‘held’ status. Execution of a print job in the ‘retained’ status accompanies creation of a new print job, whereas execution of a print job in the ‘held’ status does not accompany creation of a new print job. Namely the print job itself kept in the ‘held’ status is executed in the latter case. The print job in the ‘retained’ status is generally eliminated after elapse of a predetermined time period. The print job in the ‘held’ status is, however, kept without any time limit.
The job management apparatus functions to manage the statuses of the respective print jobs and control execution of the respective print jobs. The job management apparatus is conventionally constructed by a software program called a spooler inside the printer or a print server separate from the printer.
The prior art job management carried out in the range defined by the International Standard, however, sometimes has poor utility in practical printing services. For example, it is required to output a new job from the client every time a frequently used document is to be printed. The client should be activated on every occasion of reprinting. This results in poor utility in practice.